home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 5
/
Gekikoh Dennoh Club Vol. 5 (Japan).7z
/
Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin
/
internet
/
xip
/
iijppp.lzh
/
HOWTO
next >
Wrap
Text File
|
1994-10-16
|
11KB
|
362 lines
Using User Process PPP
Toshiharu OHNO
tony-o@iij.ad.jp
Sorry, but no real english document is not available, yet.
Here, I just give you example scenario, line start with -- is little
explanation. For further details, please refer japanese manual (doc/*.tex)
or e-mail to me.
1. Manual dialing
% ppp
User Process PPP written by Toshiharu OHNO.
-- You can specify modem and device name using following commands.
ppp> set line /dev/tty00
ppp> set speed 38400
ppp> set parity even
ppp> show modem
-- Modem related parameters are shown in here
ppp>
-- Use term command to talk with your modem
ppp> term
at
OK
atdt123456
CONNECT
login: ppp
Password:
-- PPP started in remote side ---
-- When peer start to speak PPP, the program will detect it
-- automatically and back to command mode.
ppp>
PPP>
-- NOW, you are get connected !! Note that prompt has changed to
-- capital letters
PPP> show lcp
-- You'll see LCP status --
PPP> show ipcp
-- You'll see IPCP status --
-- At this point, your machine has host route to the peer.
-- If your want to add default route entry, then enter
PPP> add 0 0 HISADDR
-- Here string `HISADDR' represents IP address of connected peer.
PPP>
-- Use applications (i.e. ping, telnet, ftp) in other windows
PPP> show log
-- Gives you some logging messages
PPP> close
-- Connection is closed, and modem will be hanged.
ppp> quit
%
2. Automatic dialing
To use automatic dialing, you must prepare Dial and Login chat script.
See example definition found in ppp.conf.
Format of ppp.conf is pretty simple.
o Each line contains one command, label or comment.
o Line stating with # is treated as a comment line.
o Label name has to start from first column and should be followed by
colon (:).
o Command line must contains space or tab at first column.
If ppp.conf is ready, specify destination label name when you invoke ppp.
Commands associated with destination label is executed when ppp command is
invoked. Note that commands associated with ``default'' label is ALWAYS
executed.
Once connection is made, you'll find that prompt is changed to
capital PPP>.
% ppp pm2
...
ppp> dial
dial OK!
login OK!
PPP>
If ppp.linkup file is available, its contents are executed when
PPP link is connected. See example which add default route.
The string HISADDR matches with IP address of connected peer.
3. On demand dialing
To play with demand dialing, you must use -auto option. Also, you must
specify destination label with proper setup in ppp.conf. It must contain
``ifaddr'' command to define peer's IP address. (refer example/ppp.conf)
% ppp -auto pm2demand
...
%
When -auto is specified, PPP program works as a daemon.
But, you are still able to use command features to check
its behavior.
% telnet localhost 3000
...
PPP> show ipcp
....
Each ppp has associated port number, which is computed as
"3000 + tunnel_device_number". If 3000 is not good base number,
edit defs.h.
When packet toward to remote network is detected, PPP will take
dialing action and try to connect with the peer. If dialing is failed,
program will wait for 30 seconds. Once this hold time expired, another
trigger packet cause dialing action. Note that automatic re-dialing is
NOT implemented.
To terminate program, use
PPP> close
ppp> quit all
Simple ``quit'' command will terminates telnet connection,
but PPP program itself is not terminated. You must use ``quit all''
to terminate the program running as daemon.
4. Packet filtering
This implementation supports packet filtering. There are three filters;
ifilter, ofilter and dfilter. Here's some basics.
o Filter definition has next syntax.
set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width]
[proto [src [lt|eq|gt] port ] [dst [lt|eq|gt] port] [estab]
a) filter-name should be ifilter, ofilter or dfiler.
b) There are two actions permit and deny. If given packet is matched
against the rule, action is taken immediately.
c) src_width and dst_width works like a netmask to represent address range.
d) proto must be one of icmp, udp or tcp.
o Each filter can hold upto 20 rules. Rule number starts from 0.
Entire rule set is not effective until rule 0 is defined.
o If no rule is matched with a packet, that packet will be discarded
(blocked).
o Use ``set filer-name -1'' to flush all rules.
See example/ppp.conf.filter.
5. Receive incoming PPP connection
To receive incoming PPP connection request, follow next steps.
(Here, example is prepared for BSDI users.)
a) Prepare bidir entry in your /etc/gettytab
bidir.38400:\
:bi:ap:hf:tc=38400-baud:
b) Edit /etc/ttys to enable getty on the port where modem is attached.
tty00 "/usr/libexec/getty bidir.38400" dialup on
Don't forget to send HUP signal to init process.
# kill -HUP 1
c) Prepare account for incoming user.
ppp:*:21:0:PPP Login User:/home/ppp:/usr/local/bin/ppplogin
d) Prepare minimum necessary environment for ppp user.
# mkdir /home/ppp
# chown ppp /home/ppp
# cd ~ppp
# touch .hushlogin
# cp /etc/ppp.conf .ppp.conf
# chown ppp .hushlogin .ppp.conf
e) Create /usr/local/bin/ppplogin file with next contents.
#!/bin/sh
/usr/local/bin/ppp -direct
You can specify label name for further control.
Direct mode (-direct) lets PPP to work with standard in and out.
Again, you can telnet to 3000 to get command mode control.
6. Setting Idle Timer
To check/set idletimer, use ``show timeout'' and ``set timeout'' command.
Ex. ppp> set timeout 600
Timeout period is measured in secs and default value is 180 or 3 min.
To disable idle timer function, use ``set timeout 0''.
In -auto mode, idle timeout cause PPP session closed. However, PPP program
itself is keep running. Another trigger packet cause dialing action.
7. Predictor-1 compression
This version supports CCP and Predictor type 1 compression based on
current IETF-draft specs. As a default behavior, PPP will propose
to use (or willing to accept) this capability and use it if peer
agrees (or requests).
To disable CCP/predictor function completely, use ``disable pred''
and ``deny pred'' command.
8. Controlling IP address
PPP uses IPCP to negotiate IP addresses. Each side of node informs IP
address that willing to use to the peer, and if requested IP address
is acceptable, PPP returns ACK to requester. Otherwise, PPP returns NAK
to suggest the peer to use different IP address. When both side of nodes
agrees to accept the received request (and send ACK), IPCP is reached to
open state and network level connection is established.
To control, this IPCP behavior, this implementation has ``set ifaddr''
to define MY and HIS IP address.
ifaddr src_addr dst_addr
Where, src_addr is the IP address that my side is willing to use, and
dst_addr is the IP address which his side should use.
ifaddr 192.244.177.38 192.244.177.2
For example, above specification means
o I strongly want to use 192.244.177.38 as my side. I'll disagree
when peer suggest me to use other addresses.
o I strongly insists peer to use 192.244.177.2 as his side address.
I don't permit him to use any IP address but 192.244.177.2.
When peer request other IP address, I always suggest him to use
192.244.177.2.
This is all right, when each side has pre-determined IP address.
However, it is often the case one side is acting as a server which
controls IP address and the other side should obey the direction from him.
In order to allow more flexible behavior, `ifaddr' command allows user
to specify IP address more loosely.
ifaddr 192.244.177.38/24 192.244.177.2/20
Number followed by slash (/) represents number of bits significant in
IP address. That is, this example means
o I'd like to use 192.244.177.38 as my side address, if it is possible.
But I also accept any IP address between 192.244.177.0 and 192.244.177.255.
o I'd like to make him to use 192.244.177.2 as his side address.
But I also permit him to use any IP address between 192.244.176.0 and
192.244.191.255.
Notes:
o As you may have already noticed, 192.244.177.2 is equivalent to
say 192.244.177.2/32.
o As an exception, 0 is equivalent to 0.0.0.0/0.
Means, I have no idea about IP address and obey what he says.
o 192.244.177.2/0 means that I'll accept/permit any IP address but I'll
try to insist to use 192.244.177.2 at first.
9. Connecting with service provider
1) Describe provider's phone number in DialScript. Use ``set dial'' or
``set phone'' command.
2) Describle login procedure in LoginScript. Use ``set login'' command.
3) Use ``set ifaddr'' command to define IP address.
o If you know what IP address provider uses, then use it as his address.
o If provider has assigned particular IP address for you, then use it
as my address.
o If provider assigns your address dynamically, use 0 as my address.
o If you have no info on IP addresses, then try
set ifaddr 0 0
4) If provider request you to use PAP/CHAP auth method, add next lines
into your ppp.conf.
enable pap (or enable chap)
disable chap (or disable pap)
set authname MyName
set authkey MyPassword
Please refer example/ppp.conf.iij for some real examples.
10. Configuration files
PPP may refers three files, ppp.conf, ppp.linkup and ppp.secret.
These files are placed in /etc, but user can create his own files
under HOME directory as .ppp.conf, .ppp.linkup and .ppp.secret.
PPP always try to consult to user's personal setup first.
11. Logging facility
PPP is able to generate following level log info.
Phase Phase transition log output
Chat Generate Chat script trace log
LQM Generate LQR report
LCP Generate LCP/IPCP packet trace
TCP/IP Dump TCP/IP packet
HDLC Dump HDLC packet in hex
Async Dump async level packet in hex
``set debug'' command allows you to set logging output level, and
multiple levels can be specified. Default is equivalent to
``set debug phase lcp''.
12. For more details
o Please read doc/guide.tex for complete explanation. Well, it is not
useful for non-japanese readers, but examples in the document may
help you to guess.
o Please read example configuration files.
o Use ``help'', ``show ?'' and ``set ?'' command.
o NetBSD and BSDI-1.0 has been supported in previous release, but no longer
supported in this release. Please contact to author if you need old
driver code.